import Http from '../request'

/**
 * 角色相关接口
 */
export default class Role {
  /**
   * 分页请求
   *
   * @param pageInfo 分页查询条件
   */
  static page(pageInfo) {
    return Http.postData('/page/role', pageInfo)
  }

  /**
   * 查询全部
   *
   * @param authQuery 查询条件
   */
  static list(authQuery = {}) {
    return Http.get('/role', authQuery)
  }

  /**
   * 通过 ID 查询
   *
   * @param id ID
   */
  static find(id) {
    return Http.get(`/role/${id}`, null)
  }

  /**
   * 通过 ID 查询角色下的权限
   * @param id
   */
  static authList(id) {
    return Http.get(`/role/${id}/auth`, null)
  }

  /**
   * 创建 (新增)
   *
   * @param roleDTO  role 信息
   */
  static create(roleDTO) {
    return Http.postData('/role', roleDTO)
  }

  /**
   * 更新
   * 根据传递的参数更新，字段为空则不更新
   *
   * @param roleDTO  role 信息
   */
  static update(roleDTO) {
    return Http.putData(`/role/${roleDTO.id}`, roleDTO)
  }

  /**
   * 修改角色的权限
   *
   * @param roleId   角色 ID
   * @param authList 权限 ID 集合
   */
  static setAuth(roleId, authList) {
    return Http.putData(`/role/${roleId}/auth`, authList)
  }

  /**
   * 通过 ID 删除
   *
   * @param id ID
   */
  static delete(id) {
    return Http.deleteData(`/role/${id}`, null)
  }
}
